/*
 * @Description: 时间操作
 * @Version: 2.0
 * @Author: Kristen
 * @Date: 2022-08-01 09:47:08
 */
// Date.prototype.friendTime = function (time = this) {
//     // 当time的值为string时将其转换
//     if (typeof time === 'string') time = new Date(time);
//     // 获取现在时间
//     let nowTime = new Date();
//     // 获取时间差(相差秒)
//     let diff = (nowTime - time) / 1000;
//     if (diff < 30) {  //30秒以前
//         return '刚刚'
//     } else if (diff < 60 * 60) {  //60分钟以前
//         return Math.ceil(diff / 60) + '分钟'
//     } else if (diff < 24 * 60 * 60) { //24小时前
//         return Math.floor(diff / 60 / 60) + '小时'
//     } else if (diff < 24 * 60 * 60 * 2) { //2天前
//         return Math.floor(diff / 60 / 60) + '小时'
//     } else {
//         return new Date(diff).format('yyyy年MM月dd日')  //超过两天显示年月日
//     }
// }
// // 时间格式化
// Date.prototype.format = function (format) {
//     var o = {
//         "M+": this.getMonth() + 1, //月
//         "d+": this.getDate(), //日
//         "h+": this.getHours(), //时
//         "m+": this.getMinutes(), //分
//         "s+": this.getSeconds(), //秒
//         "q+": Math.floor((this.getMonth() + 3) / 3), //季度
//         "S": this.getMilliseconds() //毫秒
//     }
//     if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
//         (this.getFullYear() + "").substr(4 - RegExp.$1.length));
//     for (var k in o) if (new RegExp("(" + k + ")").test(format))
//         format = format.replace(RegExp.$1,
//             RegExp.$1.length == 1 ? o[k] :
//                 ("00" + o[k]).substr(("" + o[k]).length));
//     return format;
// }

Date.prototype.format = function () { // 在时间原型上添加一个方法
    let gmtCreate = this // 使用时传过来的时间戳
    let time = new Date() // 当前系统时间
    let timeDifference = (time - gmtCreate) / 1000 // 转换成秒 （时间差）
    // 从小到大比较
    if (timeDifference < 30) return '刚刚离开' // 小于30秒展示为刚刚
    if (timeDifference < 60 * 60) return Math.round(timeDifference / 60) + '分钟前' // 小于一小时则为分钟
    if (timeDifference < 60 * 60 * 24) return Math.round(timeDifference / (60 * 60)) + '小时前' // 小于1天则为小时
    if (timeDifference < 60 * 60 * 24 * 2) return Math.round(timeDifference / (60 * 60 * 24)) + '天前' // 小于2天则为 天
    if (timeDifference) return gmtCreate.getFullYear() + '年' + (gmtCreate.getMonth() + 1) + '月' + gmtCreate.getDate() + '日' + gmtCreate.getHours() + '时' + gmtCreate.getMinutes() + '分' // 其它为全部显示
}

Date.prototype.timeMember = function () { // 在时间原型上添加一个方法
    let gmtCreate = this // 使用时传过来的时间戳
    let time = new Date() // 当前系统时间
    let timeDifference = (time - gmtCreate) / 1000 // 转换成秒 （时间差）
    if (timeDifference) return (gmtCreate.getMonth() + 1) + '月' + gmtCreate.getDate() + '日' + gmtCreate.getHours() + '时' + gmtCreate.getMinutes() + '分' // 其它为全部显示
}


Date.prototype.couponTime = function () { // 在时间原型上添加一个方法
    let _thisTime = this // 使用时传过来的时间戳
    let time = new Date() // 当前系统时间
    let timeDifference = (time - _thisTime) / 1000 // 转换成秒 （时间差）
    let y = _thisTime.getFullYear()
    let m = _thisTime.getMonth() < 10 ? '0' + (_thisTime.getMonth() + 1) : (_thisTime.getMonth() + 1)
    let d = _thisTime.getDate() < 10 ? '0' + _thisTime.getDate() : _thisTime.getDate()
    let h = _thisTime.getHours() < 10 ? '0' + _thisTime.getHours() : _thisTime.getHours()
    let m2 = _thisTime.getMinutes() < 10 ? '0' + _thisTime.getMinutes() : _thisTime.getMinutes()
    let s = _thisTime.getSeconds() < 10 ? '0' + _thisTime.getSeconds() : _thisTime.getSeconds()
    if (timeDifference) return `${y}-${m}-${d} ${h}:${m2}:${s}`
}